Basic Authentication কনফিগারেশন

Java Technologies - অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client) HTTP Authentication |
149
149

Basic Authentication হল HTTP প্রোটোকলের একটি সাধারণ অথেনটিকেশন স্কিমা যেখানে ইউজারের নাম এবং পাসওয়ার্ড ক্লায়েন্ট থেকে সার্ভারে পাঠানো হয়, সাধারণত একটি HTTP হেডারে। Apache HTTP Client-এ Basic Authentication কনফিগারেশন করতে হলে আপনাকে CredentialsProvider এবং BasicAuth ব্যবহার করতে হবে।

Maven Dependency:

প্রথমে, যদি আপনার প্রোজেক্টে Maven ব্যবহৃত হয়, তবে আপনাকে Apache HTTP Client-এর জন্য ডিপেনডেন্সি যুক্ত করতে হবে:

<dependency>
    <groupId>org.apache.httpcomponents.client5</groupId>
    <artifactId>httpclient5</artifactId>
    <version>5.4</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents.core5</groupId>
    <artifactId>httpcore5</artifactId>
    <version>5.4</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents.httpclient5</groupId>
    <artifactId>httpclient5</artifactId>
    <version>5.4</version>
</dependency>

Basic Authentication কনফিগারেশন:

Apache HTTP Client-এ Basic Authentication কনফিগার করতে, আপনাকে CredentialsProvider এবং BasicCredentials ব্যবহার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি HTTP GET রিকোয়েস্ট Basic Authentication দিয়ে পাঠানো হচ্ছে।

উদাহরণ: Basic Authentication কনফিগারেশন

import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.core5.auth.AuthScope;
import org.apache.hc.core5.auth.BasicCredentialsProvider;
import org.apache.hc.core5.auth.UsernamePasswordCredentials;
import org.apache.http.impl.client.RequestConfig;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class HttpClientWithBasicAuth {
    public static void main(String[] args) {
        // CredentialsProvider সেটআপ
        BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
                new AuthScope("your-api-endpoint.com", 80),  // API হোস্ট এবং পোর্ট
                new UsernamePasswordCredentials("username", "password")  // ইউজারনেম এবং পাসওয়ার্ড
        );

        // HTTP ক্লায়েন্ট কনফিগারেশন তৈরি
        try (CloseableHttpClient httpClient = HttpClients.custom()
                .setDefaultCredentialsProvider(credsProvider)  // CredentialsProvider সেট করা
                .build()) {

            // HTTP GET রিকোয়েস্ট তৈরি
            HttpGet request = new HttpGet("https://your-api-endpoint.com/resource");

            // রিকোয়েস্ট পাঠানো এবং রেসপন্স প্রাপ্তি
            try (CloseableHttpResponse response = httpClient.execute(request)) {
                String responseBody = EntityUtils.toString(response.getEntity());
                System.out.println("Response: " + responseBody);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  1. CredentialsProvider: BasicCredentialsProvider ব্যবহার করে ইউজারনেম এবং পাসওয়ার্ড নির্ধারণ করা হয়। এখানে AuthScope ব্যবহার করে API এর হোস্ট এবং পোর্টও উল্লেখ করা হয়।
  2. UsernamePasswordCredentials: এটি ইউজারনেম এবং পাসওয়ার্ডকে CredentialsProvider-এ সংযুক্ত করতে ব্যবহৃত হয়।
  3. HttpClients.custom(): HttpClients.custom() ব্যবহার করে HTTP ক্লায়েন্ট কনফিগার করা হয় এবং এতে setDefaultCredentialsProvider() ব্যবহার করে কনফিগারেশন যোগ করা হয়।
  4. HttpGet: এখানে একটি GET রিকোয়েস্ট তৈরি করা হয়েছে এবং execute() মেথড দিয়ে রিকোয়েস্টটি পাঠানো হয়েছে।

HTTP Header-এ Basic Authentication:

Apache HTTP Client Basic Authentication চালানোর সময়, এটি স্বয়ংক্রিয়ভাবে Authorization হেডারে ইউজারনেম এবং পাসওয়ার্ড সংযুক্ত করে। উদাহরণস্বরূপ, HTTP হেডারে যা পাঠানো হয় তা এরকম দেখতে হতে পারে:

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

এখানে dXNlcm5hbWU6cGFzc3dvcmQ= হল base64 এ এনকোড করা username:password

সারাংশ:

Apache HTTP Client-এ Basic Authentication কনফিগার করতে CredentialsProvider এবং UsernamePasswordCredentials ব্যবহার করা হয়। এটি HttpClients.custom() ব্যবহার করে ক্লায়েন্ট কনফিগার করে এবং Authorization হেডার হিসেবে ইউজারনেম এবং পাসওয়ার্ড পাঠায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion